minios: Fix xenbus request-id release.
authorKeir Fraser <keir@xensource.com>
Fri, 6 Apr 2007 09:15:31 +0000 (10:15 +0100)
committerKeir Fraser <keir@xensource.com>
Fri, 6 Apr 2007 09:15:31 +0000 (10:15 +0100)
From: Jacob Gorm Hansen <jacobg@diku.dk>
Signed-off-by: Keir Fraser <keir@xensource.com>
extras/mini-os/xenbus/xenbus.c

index 9433b22b0276bf564c42281e6c453fa5de2149fd..d0dddad64ef4a7a286f000ad2b3f153fb1d03470 100644 (file)
@@ -178,6 +178,7 @@ static void release_xenbus_id(int id)
 {
     BUG_ON(!req_info[id].in_use);
     spin_lock(&req_lock);
+    req_info[id].in_use = 0;
     nr_live_reqs--;
     req_info[id].in_use = 0;
     if (nr_live_reqs == NR_REQS - 1)
@@ -335,6 +336,7 @@ xenbus_msg_reply(int type,
     xb_write(type, id, trans, io, nr_reqs);
 
     schedule();
+    remove_waiter(w);
     wake(current);
 
     rep = req_info[id].reply;